package com.bjmashibing.system.huawei.vivo;

import com.bjmashibing.system.huawei.oppo.oppo_push;
import com.bjmashibing.system.huawei.static_var;
import com.vivo.push.sdk.notofication.Message;
import com.vivo.push.sdk.notofication.Result;
import com.vivo.push.sdk.server.Sender;
import com.xiaomi.xmpush.server.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.HashMap;
import java.util.Map;

/**
 * @Classname vivo_push
 * @Description TODO
 * @Date 2020/12/16/016 9:55
 * @Created by Administrator
 */
public class vivo_push {
    private final static Logger logger = LoggerFactory.getLogger(vivo_push.class);
    public static void send_message_vivo_to_regid(String regid,String str_title,String str_big_body,String str_machine_account,String str_event_info) {
        try {
            Map<String, String> map = new HashMap<String,String>();       //数据采用的哈希表结构
            //给map中添加元素
            map.put("name", "wangyuhong");
            map.put("age", "44");
            map.put("machine_account", str_machine_account);
            map.put("event_info", str_event_info);
            map.put("machine_info", str_big_body);
            Sender sender = new Sender("397225f0-6f32-4680-b9aa-d9666f5499e2");//注册登录开发平台网站获取到的appSecret
            Result result = sender.getToken(105294315 ,   "729b1dced86993213d79b600a180c1c2");//注册登录开发平台网站获取到的appId和appKey
            sender.setAuthToken(result. getAuthToken());
            Message singleMessage = new Message.Builder()
                    //该测试手机设备订阅推送所得的regid，且已添加为测试设备
//                    .regId("16074818390129431589891")
                    .regId(regid)
                    .notifyType(3)
                    .title(str_title)
                    .content(str_big_body)
                    .timeToLive(1000)
                    .skipType(1)
                    .skipContent("http://www.vivo.com")
                    .networkType(-1)
                    .requestId("1234567890123456")
                    .pushMode(1)
//                    .extra("https://hbpush.com:8080/hello_oppo",null)
                    .extra("https://boxigarden.cn:8080/hello_vivo",null)
                    .clientCustomMap(map)
                    .build();
            Result resultMessage = sender.sendSingle(singleMessage);
//            logger.info("" + resultMessage);
            int status_code = result.getResult();//获取服务器返回的状态码，0成功，非0失败
//            logger.info("status_code=" + status_code);
            String str_describe = result.getDesc();//获取服务器返回的调用情况文字描述
            logger.info("str_describe=" + str_describe);
            String str_taskid = result.getTaskId();//如单推请求发送成功，将获得该条单推消息的任务编号，即taskId
//            logger.info("str_taskid=" + str_taskid);
//            logger.info("result.getInvalidUser()=" + result.getInvalidUser());
//            int invalid_status = result.getInvalidUser().getStatus();//非法用户信息，包括status和userid//非法用户信息状态，包括四种情况， 1 userId不存在。 2卸载或者关闭了通知。 3 90天不在线。4 非测试用户
//            String invalid_userid = result. getInvalidUser().getUserid();//非法用户信息，包括status和userid
//            logger.info("invalid_status=" + invalid_status);
//            logger.info("invalid_userid=" + invalid_userid);
//            int result.getInvalidUser().getStatus();//非法用户信息状态，包括四种情况， 1 userId不存在。 2卸载或者关闭了通知。 3 90天不在线。4 非测试用户
//            result.   getInvalidUser().getUserid();//非法的用户信息，即接入方传的regid或者alias
        } catch (Exception e) {
            logger.info("send_message_vivo_to_regid,error=",e);
            e.printStackTrace();
        }
    }

    public static void send_message_vivo_to_regid_offiial_edition(String regid,String str_title,String str_big_body,String str_machine_account,String str_event_info) {
        try {
            Map<String, String> map = new HashMap<String,String>();       //数据采用的哈希表结构
            //给map中添加元素
            map.put("name", "wangyuhong");
            map.put("age", "44");
            map.put("machine_account", str_machine_account);
            map.put("event_info", str_event_info);
            map.put("machine_info", str_big_body);


            Sender sender = new Sender("ae1ab4fb-5d81-455c-ba0f-58e5a3a821a7");//注册登录开发平台网站获取到的appSecret
//            sender.initPool(20,10);//设置连接池参数，可选项
            Result result = sender.getToken(105294315 ,   "729b1dced86993213d79b600a180c1c2");//注册登录开发平台网站获取到的appId和appKey
            sender.setAuthToken(result. getAuthToken());
            Message singleMessage = new Message.Builder()
                    //该测试手机设备订阅推送所得的regid，且已添加为测试设备
//                    .regId("16074818390129431589891")
                    .regId(regid)
                    .notifyType(4)
                    .title(str_title)
                    .content(str_big_body)
                    .timeToLive(900)
                    .skipType(1)
//                    .skipContent("http://www.vivo.com")
                    .networkType(-1)
                    .requestId("3333222226765767686754546")
                    .classification(1)
                    .pushMode(0)//推送模式 0：正式推送；1：测试推送，不填默认为0（测试推送，只能给web界面录入的测试用户推送；审核中应用，只能用测试推送）
//                    .extra("https://hbpush.com:8080/hello_oppo",null)
//                    .extra("https://boxigarden.cn:8080/hello_vivo",null)
                    .clientCustomMap(map)

                    .build();
            Result resultMessage = sender.sendSingle(singleMessage);
//            logger.info("" + resultMessage);
            int status_code = result.getResult();//获取服务器返回的状态码，0成功，非0失败
//            logger.info("status_code=" + status_code);
            String str_describe = result.getDesc();//获取服务器返回的调用情况文字描述
            logger.info("str_describe=" + str_describe + "," + str_machine_account);
            String str_taskid = result.getTaskId();//如单推请求发送成功，将获得该条单推消息的任务编号，即taskId
//            logger.info("str_taskid=" + str_taskid);
//            logger.info("result.getInvalidUser()=" + result.getInvalidUser());
//            int invalid_status = result.getInvalidUser().getStatus();//非法用户信息，包括status和userid//非法用户信息状态，包括四种情况， 1 userId不存在。 2卸载或者关闭了通知。 3 90天不在线。4 非测试用户
//            String invalid_userid = result. getInvalidUser().getUserid();//非法用户信息，包括status和userid
//            logger.info("invalid_status=" + invalid_status);
//            logger.info("invalid_userid=" + invalid_userid);
//            int result.getInvalidUser().getStatus();//非法用户信息状态，包括四种情况， 1 userId不存在。 2卸载或者关闭了通知。 3 90天不在线。4 非测试用户
//            result.   getInvalidUser().getUserid();//非法的用户信息，即接入方传的regid或者alias
        } catch (Exception e) {
            logger.info("send_message_vivo_to_regid_offiial_edition,error=",e);
            e.printStackTrace();
        }
    }
}
